package businessObject;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import data.*;
import dataTransferObject.Rol;
import dataTransferObject.Usuario;

public class GestionUsuario {
	private static GestionUsuario gestionUsuario = null;
	private IRolDAO rolDAO;
	private List<Rol> roles;
	
	public static synchronized GestionUsuario getInstance() {
		if (gestionUsuario == null) {
			gestionUsuario = new GestionUsuario();
		}
		return gestionUsuario;
	}
	
	private GestionUsuario() {
		rolDAO = new JDBCRolDAO();
		roles = rolDAO.selectAllRoles();
	}

	public Usuario getUsuarioConAmigos(int idUsuario) {
		Usuario usuario=null;
		IUsuarioDAO usuarioDAO= new JDBCUsuarioDAO();
		usuario=usuarioDAO.selectUsuario(idUsuario);
		usuarioDAO.actualizaAmigos(usuario);
		return usuario;
	}
	
	
	
	public int validarUsuario(String email, String password, int idRol) {
		int usuario = -1;
		IUsuarioDAO usuarioDAO = new JDBCUsuarioDAO();
		usuario = usuarioDAO.selectUsuario(email, password, idRol);
		
		//if (usuario != -1)
			//usuarioDAO.actualizaAmigos(usuarioDAO.selectUsuario(usuario));		
		return usuario;
	}

	

	public List<Usuario> selectAmigosDeUnUsuario(Integer idUsuario) {

		IUsuarioDAO usuarioDao = new JDBCUsuarioDAO();
		Usuario usuario = usuarioDao.selectUsuario(idUsuario);
		usuarioDao.actualizaAmigos(usuario);
		return usuario.getAmigos();
	}
	
	public List<Rol> getRoles() {
		return this.roles;
	}
}
